The invention relates generally to the processing and distribution of customer communications within an enterprise and, more particularly, to analyzing and processing each customer communication entering the enterprise to provide communication processing consistent with enterprise business objectives.
A business enterprise, or simply xe2x80x9centerprise,xe2x80x9d may utilize one or more call centers to handle inbound and outbound customer calls. A typical call center includes a number of agents who field inbound telephone calls and place outbound telephone calls. Call center telephone calls frequently have associated data, such as customer information that the agents utilize in processing the calls. The call center""s communication system may organize the agents into groups, known as skill/split hunt groups, based on their skills and qualifications.
A conventional call center typically comprises either an automatic call distributor (xe2x80x9cACDxe2x80x9d) or private branch exchange (xe2x80x9cPBXxe2x80x9d) that receives incoming calls through a public switched telephone network (xe2x80x9cPSTNxe2x80x9d) and routes the calls to a skill/split hunt group, rather than to a specific agent. Agents are associated with these skill/split hunt groups to receive incoming calls. An ACD typically contains a superset of the functions provided by a PBX. The ACD/PBX typically queues incoming calls to one or more skill/split hunt groups with available agents on the basis of statistical information that these skill/split groups satisfy an objective level of service. An objective level of service might be xe2x80x9ccalls answered on the average in 10 secondsxe2x80x9d or xe2x80x9c90% of calls are answered in 20 seconds.xe2x80x9d When multiple agents are available to handle a call, typically they will deliver the call to the agent who has been idlexe2x80x94waiting for a next call the longest period of time. Other criteria for agent selection are also used. The agents typically process customer calls utilizing either specialized telephones, known as ACD/PBX feature phones, that interface with a specific ACD/PBX or utilize software-controlled telephony applications (xe2x80x9csoftphonesxe2x80x9d) that can coexist with a proprietary ACD/PBX feature phone or can utilize telephone sets not necessarily designed for the call center""s particular ACD/PBX. Softphones provide a less expensive means for attaining many of the capabilities of an ACD/PBX feature phone while using only software in combination with a xe2x80x9cplain-old-telephone setxe2x80x9d (xe2x80x9cPOTSxe2x80x9d).
Call center agents typically have access to customer data to facilitate call processing. For example, a call center agent may utilize a graphical user interface (xe2x80x9cGUIxe2x80x9d) program that provides calling scripts and access to a customer database. In a softphone environment, the GUI program may also control telephony functions. While interacting with a caller, the agent uses hot keys or an electronic mouse to select telephony functions on a workstation screen. A hot key is a keystroke or combination of keystrokes that sends a command to a computing system that processes the agent""s commands.
FIG. 1 illustrates a conventional softphone-configured call center 130. In the softphone call center 130, an ACD 102 interfaces between the customer telephone call 100 and an agent telephone 108 in an agent workstation 120. The softphone call center 130 will comprise multiple agent workstations 120 having multiple agent telephones 108. Customers typically place telephone calls to the agent telephones 108 via the PSTN 101. When a customer telephone call 100 arrives at the ACD 102, an ACD route point 103 receives the call. The ACD 102 routes incoming calls through the ACD route point 103 which typically comprises a phone number (e.g., a directory number (xe2x80x9cDNxe2x80x9d)) in the numbering plan of the ACD 102 that works in conjunction with a routing program 104 that provides a call-handling instructions script. An ACD vector 105, typically a computer program, controls the routing program 104 to enable customized call processing specifications in the ACD 102. The routing program 104 tells the ACD""s call processing software how to treat the customer call 100. The routing program 104 typically includes at least one announcement and at least one queue statement. The ACD vector 105 and the routing program 104 may be combined in some conventional ACDs. The queue statement directs the call to a specific ACD skill/split hunt group 106 based on the assumption that the skill/hunt group 106 provides the best service to the incoming caller. The ACD skill/split hunt group 106 has a single phone number, a Pilot Directory Number (xe2x80x9cPilot DNxe2x80x9d) 107, that subsequently directs the client telephone call to one of the available agent telephones 108 within the particular ACD skill/split hunt group 106. The ACD skill/split hunt group 106 may select an agent telephone 108 if this is the only agent available to take a call or on the basis of an agent being idle the longest if multiple agents are available to take a call. As shown in FIG. 1, the ACD 102 may have multiple route points 103, multiple routing programs 104, multiple ACD vectors 105, and multiple ACD skill/split hunt groups 106. Each ACD skill/split hunt group 106 will usually include multiple agent workstations 120.
A call control application server 110 communicates with the ACD 102 through a computer-telephony integration (xe2x80x9cCTIxe2x80x9d) link 109. The call control application server 110 comprises a standard computing system, such as a personal computer (xe2x80x9cPCxe2x80x9d), and a CTI server application that processes calling information for an agent via a softphone application 111 at the agent workstation 120. Each agent typically has a terminal that provides a GUI to the softphone application 111. The softphone application 111 emulates the button functions of a conventional ACD/PBX feature phone. The call control application server 110 synchronizes the softphone application 111 with the ACD 102 by sending event messages to the softphone application 111 pertaining to the agent""s telephone 108. The call control application server 110 services telephony commands from the softphone application 111 to provide the agent with a softphone. In a typical configuration, each agent has access to an individual copy of the softphone application 111 at his or her workstation 108. The softphone application 111 servicing each agent workstation 108 may be run from the call control application server 110, for example, in an internet browser-based implementation. The combination of the agent workstation 120 utilizing a POTS such as the telephone 108 and the softphone application 111 provides the agent with the features available on more expensive ACD/PBX feature phones.
The agent telephones 108 typically receive calls directed to either of two numbers. The first number is the telephone number for the telephone instrument itself, known as the Phone Directory Number (xe2x80x9cPhone DNxe2x80x9d). The second number is a telephone number corresponding to the agent, known as an Agent Directory Number (xe2x80x9cAgent DNxe2x80x9d). The Agent DN follows an individual call center agent. Thus, an agent may switch from one agent workstation 120 to another agent workstation 120 and still retain the same Agent DN. The Agent DN constitutes a personal telephone number for the agent and returns a fast busy signal if the agent is not logged into the ACD 102 or a busy signal when the agent is on another call.
In a softphone-equipped call center, such as the call center shown in FIG. 1, a customer call 100 may reach an individual agent in several different ways. The customer call 100 may reach the agent through the ACD route point 103. This method of calling does not necessarily reach a specific agent but instead reaches any available agent in the ACD skill/split hunt group 106. This method provides general calling but is unsuitable for reaching a specific agent. If no agent is available in the ACD skill/split hunt group 106 when a call arrives, the ACD 102 simply queues the call for processing by the next available agent. In some call centers, the ACD 102 may direct a light to flash at the agent workstation 120 when a call arrives through an Agent DN. A call may also reach an agent by being directed through the PSTN 101 to the Agent DN or the agent telephone""s Phone DN.
When an ACD agent is available to take another call, the ACD 102 concurrently sends an event message via a CTI middleware product to the agent""s workstation 120 that causes an application in the workstation to present customer data about the call to the agent. The event message contains user data associated with the phone call that is supplied by the ACD or via external data sources accessed by the CTI middleware. For example, the event message user data may contain the calling party""s translated automatic number identification (xe2x80x9cANIxe2x80x9d) (who is calling) and the dialed number identification service (xe2x80x9cDNISxe2x80x9d) (why they are calling). The workstation application interprets the event user data to provide a data presentation to the agent. This data presentation is known as a xe2x80x9cscreen popxe2x80x9d as the agent""s workstation monitor suddenly displays the customer information. The screen pop should arrive slightly ahead of, or concurrent with, the arrival of the call at the agent""s telephone 108, which typically includes an audio headset. Sometimes the call arrives at an agent""s headset before the screen pop, compelling the agent to begin with a general greeting without knowing to whom he is speaking. Such errors prevent the agent from quickly assessing how to treat the call.
A call center may also have one or more robotic call-handling applications that process all or part of a customer call. A robotic call-handling application""s requirements resemble those of a softphone application. The primary difference is that the softphone manages calls arriving at a specific Phone DN while a robotic call-handling application manages calls arriving at a specific route point 103, also known as a Route Point DN. A robotic call-handling application may communicate with both the route point 103, the ACD skill/split hunt group 106, and the Agent DN and the Phone DN at the agent""s workstation 120. Some robotic applications may receive information from the customer calls 100 and may, in some instances, handle a call in a manner much like that of a call center agent. For example, a robotic call-handling application may utilize an interactive voice response (xe2x80x9cIVRxe2x80x9d) system in the processing of a customer call. As robotic technologies grow more sophisticated, robotic applications may even begin replacing many, or in some instances all call center agents. In many instances, robotic applications require capabilities beyond those required by human call center agents, such as handling many more calls than a human agent.
An enterprise may have more than one call center, and the call centers may have a variety of configurations and provide different processing capabilities. Enterprises having multiple call centers typically want to unify the disparate pieces of their call processing capabilities in order to provide consistent and balanced call processing. Balancing the utilization of geographically distributed resources in various call centers against the demand for such resources is known as xe2x80x9cload balancing.xe2x80x9d For example, if call center A has the capacity to handle 100 calls per minute and currently there are no idle agents with many calls waiting to be serviced, while call center B has the capacity to handle 200 calls per minute but has many idle agents, load balancing would balance the incoming calls across both call centers to take advantage of the idle agents in call center B to provide better service to the customers calling into call center A.
Load balancing is especially appropriate in customer-facing call centers that handle inbound phone calls and whose agents receive calls from an ACD/PBX, such as the ACD 102 shown in FIG. 1. One type of software system that performs load balancing across all such call centers at the PSTN network level is conventionally known as a xe2x80x9cNetwork ACD.xe2x80x9d Another type of software system that performs load balancing across such call centers at the customer premise equipment (xe2x80x9cCPExe2x80x9d) ACD level is conventionally known as an xe2x80x9cACD with a load balancing option,xe2x80x9d although sometimes such CPE ACD implementations are also referred to as a xe2x80x9cNetwork ACD.xe2x80x9d A Network ACD may comprise a collection of CPE ACDs as well as an ACD that resides in the telephone network that feeds a collection of like or disparate CPE ACDs. An exemplary CPE ACD is the Lucent Definity ACD. Typically, the like kind CPE ACDs will have a Load Balancing software feature package, sometimes referred to as a xe2x80x9cNetwork ACDxe2x80x9d option. A conventional Network ACD that operates at the PSTN network level is the Geotel Intelligent CallRouter(copyright). For example, in an enterprise call environment, load balancing may mean that calls entering the enterprise""s Network ACD""s queues are distributed across multiple call centers in such a manner that the load (call volume) at each call center is commensurate with the capability of the ACD resources at each call center to service calls in a timely manner.
FIG. 2 illustrates a conventional load balancing scheme provided by a Network ACD operating at the PSTN network level. A load balancing system 210 comprises a Network ACD 201 and ACDs 202-206. The ACDs 202-206 may be located in one or more call centers, and the ACDs 202-206 may be CPE ACDs. Customer calls reach the load balancing system 210 through the PSTN 101. The ACDs 202-206 provide statistical information regarding utilization of their call processing capabilities. The Network ACD 201 examines the statistical information provided by the ACDs 202-206 to select an ACD to receive a customer call. Thus, the Network ACD distributes calls to the ACDs 202-206 while the ACDs 202-206 return service statistics to the Network ACD 201. The Network ACD 201 selects an ACD to receive a customer call solely upon metrics related to remaining or non-utilized call handling capacity in the ACDs 202-206.
The load balancing system 210 may utilize as its load balancing metric the current service level achieved in each of the ACDs 202-206. Some conventional load balancing systems utilize even cruder metrics. An example of a service level is the average speed to answer (xe2x80x9cASAxe2x80x9d), or the average time that a call waits in queue before being directed to an agent. One of the principles underlying most conventional load balancing systems is that a larger ACD service team is more efficient than several smaller service teams. Accordingly, the load balancing system 210 provides the appearance of a virtual service team across physically separate locations.
ACD manufacturers implement load balancing using a variety of schemes. In an enterprise consisting of multiple, geographically dispersed call centers, load balancing may be accomplished by having a Network ACD examine the expected service level to be achieved at each call center and then move the call to the xe2x80x9cbestxe2x80x9d call center to meet expected service objectives. The load balancing system typically assesses the xe2x80x9cbestxe2x80x9d call center in less than 500 msec, i.e., a value determined by the telephone network providers as a required determinant of allowing a third party application (the Network ACD 201) to route a call. For calls not routed by the Network ACD 201 in less than 500 msec, the telephone network provider will distribute the call on the basis of default programming. Moving the call into the ACD of a particular call center (e.g., the ACD 206) places further processing of the call under the control of the ACD and not the Network ACD 201. The ACD will eventually distribute the call to an agent having telephony equipment controlled by the ACD. Accordingly, once a customer call is moved to a specific ACD, the limitations of a small agent pool re-appear as the cost of moving the call back to the Network ACD 201 may be too expensive. Some Network ACDs can move a call back up to the telephone network and redistribute the call, but such processing is expensive and is typically performed on a per call basis.
Each ACD 202-206 in the load balancing system 210 provides statistics regarding the actual service achieved (e.g., the ASA) to the Network ACD 201 in order to allow the Network ACD 201 to perform load balancing. The Network ACD 201 does not typically know which agent received a specific call. Thus, the Network ACD 201 does not directly know the actual service provided. For that matter, no piece of equipment in the load balancing system 210 knows the actual level of service provided by the enterprise in processing customer calls.
A collection of like-manufacturer CPE ACDs may effect call routing via a multi-site ACD load balancing software package. However, even a multi-site ACD software package eventually moves calls to a queue on a CPE ACD for distribution to an agent with the expectation that the calls residing in that particular queue (or queues) will provide the best possible service to the calling customer.
An enterprise may utilize a Centrex system in addition to or instead of using CPE ACDs. In a Centrex system, the local telephone company provides the enterprise with customer calling telephone services from its offices. Even a Centrex system performs load balancing as discussed above. While the Network ACD and one or more CPE ACDs may be the same piece of equipment in a Centrex system, a conventional Centrex system nevertheless utilizes a Network ACD software package that controls call routing in the manner described above. Thus, even a Centrex system performs load balancing for an enterprise on the basis of balancing a load rather than on meeting the enterprise""s service objectives. An exemplary Centrex Network ACD package is Lucent""s TOPMS which distributes calls base on percent capacity to the underlying CPE ACDs.
FIG. 3 is a flowchart depicting call routing in a conventional Network ACD load balancing system. A Network ACD receives a call (step 301). The Network ACD uses the ANI and DNIS to determine the service to be provided via a database lookup against a database containing routing information (step 303). The Network ACD examines statistics for all of the ACDs operating under the load balancing scheme (step 305) that can service this call. For example, if the incoming call is to customer service, there may be 15 ACDs to which calls can be directed, but only 10 handle customer service requests. Based upon the ACD statistics, the Network ACD selects an ACD for the call based on the ACD having the most appropriate statistics (step 307). As previously discussed, the most appropriate statistics will typically be the ACD having the best service level. The Network ACD then transfers the call to the selected ACD (step 309).
The ACD receives the call sent to it from the Network ACD (step 311). The ACD analyzes the call to select an appropriate split/skill hunt group (step 313). The ACD then selects an available agent in the split/skill hunt group based upon whether an agent is presently available or is the longest idle agent (step 315). If no agent is presently available (step 319), then the ACD may send the call to another split/hunt group (step 321) before routing the call back through the agent selection process (step 315). As the result of considering other agent distribution options (step 321), the ACD may determine that other agents can be considered in order to meet service objectives. For example, calls for Platinum customers are not being answered by Platinum customer agents to meet an ASA service objective of 10 seconds, therefore after waiting 2 seconds with no agent from the pool of Platinum customer agents available, both Platinum customer agents and Gold customer agents will be considered acceptable to answer Platinum customer calls. If an agent is available (step 319), then the ACD transfers the call to the agent while simultaneously sending a CTI event to external server based xe2x80x9cscreen popxe2x80x9d software that a call is about to be delivered to a specific agent""s phone. This external software populates data associated with the call and then executes a xe2x80x9cscreen popxe2x80x9d instruction (step 323) to an application at the agent""s desktop. The desktop application receives the data associated with this call along with CTI call event notification and processes the data to provide a xe2x80x9cscreen pop.xe2x80x9d The agent then processes the call according to the enterprise business directives.
As described above, the conventional procedure for routing customer calls in an enterprise environment has been based upon balancing the load among the various components that comprise the enterprise""s call-handling capability, e.g., the ACDs. While the conventional process may be adequate for balancing the load among the enterprise""s various call-handling components, the conventional procedure does little in the way of accomplishing an enterprise""s business objectives with regard to its customers and to its resources, such as its call center agents. In addition, the conventional procedure does not address customer communications arriving from communication media other than telephones.
The invention provides a method and system for processing an enterprise""s incoming customer communications on the basis of the enterprise""s business objectives. Embodiments of the invention deliver services to an enterprise""s customers across all lines of the enterprise""s business and treats customers in a consistent manner independent of their entry point into the enterprise""s business communication facilities. Embodiments of the invention tie together physically separate business communication centers, including xe2x80x9cback officexe2x80x9d sites not normally associated with processing customer communications.
Embodiments of the invention provide an enterprise service balancer that distributes work based upon enterprise service objectives, enterprise resources and immediate resource availability. The enterprise service balancer provides an instantaneous best possible service for a customer communication (e.g., a call) by matching the customer communication with the most appropriate resource in the enterprise, as a whole, in accordance with the enterprise""s definition of best service. Unless a customer communication is directed to a specific agent, embodiments of the enterprise service balancer refrain from moving a customer communication until a resource(s) has identified itself as available. The enterprise service balancer may provide a virtual call center that unites the enterprise""s various telephony elements, such as physically separate call centers, to provide a unified call-handling capacity for the enterprise. Agents, or agent applications, may make themselves available for taking a higher priority work, such as a call over the work currently performed, according to an embodiment of the invention. Therefore, identifying oneself as xe2x80x9cavailablexe2x80x9d may be xe2x80x9cavailable for specific types of work which can interrupt current work.xe2x80x9d For example, an agent may be working on a billing adjustment work type but will make himself available for taking a Platinum Customer phone call billing related work type.
Embodiments of the enterprise service balancer processes calls on the basis of specific customer and agent characteristics. The enterprise service balancer further accommodates an enterprise""s various definitions of the appropriate resource by referencing a resource""s skills set. When the enterprise receives a call from a customer that requires a certain skills set, an enterprise service balancer processing calls according to the definition of xe2x80x9cappropriate resourcexe2x80x9d looks for an available agent in the enterprise who has that skills set.
Embodiments of the enterprise service balancer operate in conjunction with enterprise resources as diverse as call center agents, back office agents, and robotic call processing applications. The back office agents, such as technical staff members, represent persons who do not typically handle inbound customer communications. The robotic call processing applications may operate in conjunction with an interactive voice response (xe2x80x9cIVRxe2x80x9d) system. Embodiments of the enterprise service balancer may receive and process customer communications such as telephony calls, e-mail, video kiosk, and the Internet.